package com.esxy.fastdfs;

import org.csource.common.MyException;
import org.csource.fastdfs.*;

import java.io.FileOutputStream;
import java.io.IOException;

//上传文件
public class Uplocad {
    /*上传文件*/
    public static void main(String[] args) {
       //使用java操作FastDfs上传文件的步骤
        //1.导入依赖
        //2.编写配置
        //3.实现上传的步骤
        try {
            //3.1 加载配置
            ClientGlobal.init("fastdfs.properties");
            //3.2创建TrackerClient对象，创建追踪角色的客户端
            TrackerClient client=new TrackerClient();
            //3.2获取TrackServer对象，通过追踪服务的客户端返回追踪服务的服务端
            TrackerServer trackerServer=client.getConnection();
            //3.3获取StorageClient对象，创建存储服务器
            StorageClient storageClient=new StorageClient(trackerServer,null);
            //3.4使用StorageClient进行上传
            //            利用storageClient上传,接收文件所在服务器上的位置
            String[] uploadFile=storageClient.upload_file("","jpg",null);

//            一般来所，只要不属于全部直接返回出去的超过一个以上的数据。都需要进行遍历
            for (int i=0;i<uploadFile.length;i++){
                System.out.println(uploadFile[i]);
            }
            //3.5关闭资源
            storageClient=null;
            trackerServer.close();
            client=null;
            System.out.println("上传成功");
            System.out.println("组名:"+uploadFile[0]);
//group1
            System.out.println("文件存储路径:"+uploadFile[1]);
//M00/00/00/xxxxxxxxxxx.jpg
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }

/*//测试删除上传的
//使用java操作FastDfs删除文件的步骤
        //1.导入依赖
        //2.编写配置
        //3.实现上传的步骤
        try {
            //3.1 加载配置
            ClientGlobal.init("fastdfs.properties");
            //3.2创建TrackerClient对象
            TrackerClient client=new TrackerClient();
            //3.2获取TrackServer对象
            TrackerServer trackerServer=client.getConnection();
            //3.3获取StorageClient对象
            StorageClient storageClient=new StorageClient(trackerServer,null);
            //3.4使用StorageClient进行删除
            storageClient.delete_file("group1","M00/00/00/wKi-NWg4he6AJmNZAAzULdjkiSk804.jpg");
            //3.5关闭资源
            storageClient=null;
            trackerServer.close();
            client=null;
            System.out.println("成功删除");

        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }*/

//使用java程序下载图片到Fastdfs
            //使用api操作Fastdfs
/*            try {
                //1.加载属性
                ClientGlobal.init("fastdfs.properties");
                //2.创建tracker服务器对象
                TrackerClient client=new TrackerClient();
                TrackerServer trackerServer=client.getConnection();
                //3.创建storage客户端
                StorageServer storageServer=null;
                StorageClient storageClient=new StorageClient(trackerServer,storageServer);
                //4.下载图片
                byte []bs=storageClient.download_file("group1","M00/00/00/wKgBHlywDvCAMrzPAABZCfb2C1U611.jpg");
                //将到返回的二进制数据写入文件
                // 流Stream
                // 流的分类:输入流inputStream 读文件、输出流(outputStream) 写文件
                FileOutputStream fos=new FileOutputStream("D:\\HMOMEWORK\\springcloud\\pic\\a.jpg");
                fos.write(bs);
                fos.flush();
                fos.close();
                System.out.println("下载成功");
                //5.关闭
                trackerServer.close();
            } catch (Exception e) {
                e.printStackTrace();
            }*/

    }
    }
